/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.eps.modelo.javabeans;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 *
 * @author luis
 */
@Entity
@Table(name = "T_CicloMedicion")
@NamedQueries({
    @NamedQuery(name = "CicloMedicion.findAll", query = "SELECT c FROM CicloMedicion c"),
    @NamedQuery(name = "CicloMedicion.findByAnio", query = "SELECT c FROM CicloMedicion c WHERE c.anio = :anio"),
    @NamedQuery(name = "CicloMedicion.findByMes", query = "SELECT c FROM CicloMedicion c WHERE c.mes = :mes"),
    @NamedQuery(name = "CicloMedicion.findByFechaTomaLectura", query = "SELECT c FROM CicloMedicion c WHERE c.fechaTomaLectura = :fechaTomaLectura"),
    @NamedQuery(name = "CicloMedicion.findByFechaEntregaLectura", query = "SELECT c FROM CicloMedicion c WHERE c.fechaEntregaLectura = :fechaEntregaLectura"),
    @NamedQuery(name = "CicloMedicion.findByEstado", query = "SELECT c FROM CicloMedicion c WHERE c.estado = :estado"),
    @NamedQuery(name = "CicloMedicion.findByTCicloMedicionID", query = "SELECT c FROM CicloMedicion c WHERE c.tCicloMedicionID = :tCicloMedicionID")})
public class CicloMedicion implements Serializable {
    private static final long serialVersionUID = 1L;
    @Basic(optional = false)
    @Column(name = "anio")
    private String anio;
    @Basic(optional = false)
    @Column(name = "mes")
    private String mes;
    @Basic(optional = false)
    @Column(name = "fechaTomaLectura")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaTomaLectura;
    @Basic(optional = false)
    @Column(name = "fechaEntregaLectura")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaEntregaLectura;
    @Basic(optional = false)
    @Column(name = "estado")
    private short estado;
    @Id
    @Basic(optional = false)
    @Column(name = "T_CicloMedicion_ID")
    private Integer tCicloMedicionID;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "cicloMedicion")
    private List<PadronLectura> padronLecturaList;

    public CicloMedicion() {
    }

    public CicloMedicion(Integer tCicloMedicionID) {
        this.tCicloMedicionID = tCicloMedicionID;
    }

    public CicloMedicion(Integer tCicloMedicionID, String anio, String mes, Date fechaTomaLectura, Date fechaEntregaLectura, short estado) {
        this.tCicloMedicionID = tCicloMedicionID;
        this.anio = anio;
        this.mes = mes;
        this.fechaTomaLectura = fechaTomaLectura;
        this.fechaEntregaLectura = fechaEntregaLectura;
        this.estado = estado;
    }

    public String getAnio() {
        return anio;
    }

    public void setAnio(String anio) {
        this.anio = anio;
    }

    public String getMes() {
        return mes;
    }

    public void setMes(String mes) {
        this.mes = mes;
    }

    public Date getFechaTomaLectura() {
        return fechaTomaLectura;
    }

    public void setFechaTomaLectura(Date fechaTomaLectura) {
        this.fechaTomaLectura = fechaTomaLectura;
    }

    public Date getFechaEntregaLectura() {
        return fechaEntregaLectura;
    }

    public void setFechaEntregaLectura(Date fechaEntregaLectura) {
        this.fechaEntregaLectura = fechaEntregaLectura;
    }

    public short getEstado() {
        return estado;
    }

    public void setEstado(short estado) {
        this.estado = estado;
    }

    public Integer getTCicloMedicionID() {
        return tCicloMedicionID;
    }

    public void setTCicloMedicionID(Integer tCicloMedicionID) {
        this.tCicloMedicionID = tCicloMedicionID;
    }

    public List<PadronLectura> getPadronLecturaList() {
        return padronLecturaList;
    }

    public void setPadronLecturaList(List<PadronLectura> padronLecturaList) {
        this.padronLecturaList = padronLecturaList;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (tCicloMedicionID != null ? tCicloMedicionID.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof CicloMedicion)) {
            return false;
        }
        CicloMedicion other = (CicloMedicion) object;
        if ((this.tCicloMedicionID == null && other.tCicloMedicionID != null) || (this.tCicloMedicionID != null && !this.tCicloMedicionID.equals(other.tCicloMedicionID))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "murguia.ejb30.entity.COMER.CicloMedicion[tCicloMedicionID=" + tCicloMedicionID + "]";
    }

}
